from django.urls import path, re_path
from . import views
from django.conf.urls import url

"""
目前Django兼容3中形式的路由写法：
1、path('网络地址正则表达式', '视图函数名'), 由于path函数已经默认封装正则表达式的^和$，所以在写路由时不需要加
2、re_path(r'^网络地址正则表达式$', '类视图名'.as_view()),正则表达式一定不能省略
3、url(r'^网络地址正则表达式$', '类视图名'.as_view()),正则表达式一定不能省略
三种路由写法对应需要导入不同的包
path():from django.urls import path, re_path
re_path():from django.urls import re_path
url():from django.conf.urls import url
"""

"""
路由屏蔽：
1、匹配路由urlpatterns列表时，是自上而下的开始遍历路由
2、使用re_path()和url()时没有写完整的正则表达式
"""
urlpatterns = [
    # http://127.0.0.1/register/
    path("register/", views.register),

    # http://127.0.0.1/register2/
    path('register2/', views.register2),

    # http://127.0.0.1/register3/
    path('register3/', views.RegisterView.as_view()),

    # http://127.0.0.1/register4/
    path('register4/', views.RegisterView2.as_view()),

    # 这是错误的写法，正则表达式没有写完整，会导致路由屏蔽，正确写法为：re_path(r'^say$', views.SayView.as_view()),
    # http://127.0.0.1/say/
    re_path('say', views.SayView.as_view()),
    # 这是错误的写法，正则表达式没有写完整，会导致路由屏蔽,正确写法为：url(r'^say$', views.SayHelloView.as_view()),
    # http://127.0.0.1/sayhello/
    url('sayhello', views.SayHelloView.as_view()),

]
